Dsuite 原理入门
Dsuite 原理入门
Dsuite 是一套围绕 D 统计量(Patterson's D / ABBA-BABA) 和相关 f 统计量构建的软件工具,核心目标是在多群体或多物种基因组数据中,系统检测 基因流(gene flow)、杂交渗入(introgression) 和偏离简单树状演化模型的信号。
一、Dsuite 解决什么问题
在群体遗传和比较基因组研究中,一个常见问题是:
多个群体之间的遗传相似性,究竟来自共同祖先,还是来自后期基因流?
如果所有群体都严格按照一棵系统发育树分化,而且分化之后没有基因交流,那么不同群体之间共享衍生等位基因的模式应当满足树模型的期望。Dsuite 所使用的 D 统计量正是通过检验这种期望是否被打破,来判断是否存在额外的基因流信号。
相比只分析单个群体组合,Dsuite 更适合:
- 群体或物种数量较多;
- 想批量扫描所有三元组或四元组;
- 想从全基因组 VCF 数据中寻找 introgression 证据;
- 想进一步定位哪些系统树分支可能参与过基因流。
因此,Dsuite 可以理解为一个面向 大规模 ABBA-BABA / f 统计量分析 的工具集合。
二、D 统计量与 ABBA-BABA 的基本思想
1. 四群体框架
经典 D 统计量通常使用四个类群:
(((P1, P2), P3), O)
其中:
- P1、P2:两个彼此亲缘关系更近的群体;
- P3:与 P1/P2 构成待检测关系的第三个群体;
- O:外群(outgroup),用于判断祖先等位基因状态。
在这个框架下,如果没有 P3 与 P1/P2 之间的额外基因流,那么 P3 与 P1、P2 共享衍生等位基因的机会应该大体对称。
2. ABBA 与 BABA 模式
假设每个位点只有两个等位基因:
- A:祖先等位基因;
- B:衍生等位基因。
在四个群体上的等位基因模式可以写成:
P1 P2 P3 O
A B B A = ABBA
B A B A = BABA
含义是:
- ABBA:P2 和 P3 共享衍生等位基因;
- BABA:P1 和 P3 共享衍生等位基因。
如果没有额外基因流,ABBA 和 BABA 的数量应该接近。若明显偏向某一类模式,则说明 P3 与 P1 或 P2 之间可能存在额外的等位基因共享。
3. D 统计量公式
D 统计量的基本形式是:
解释:
:ABBA 与 BABA 接近平衡,符合无额外基因流的树模型; :ABBA 更多,P2 与 P3 共享衍生等位基因更多; :BABA 更多,P1 与 P3 共享衍生等位基因更多。
D 值本身描述的是共享衍生等位基因的不对称性。真正判断是否显著,通常还需要结合 Z-score 和 P 值。
三、Dsuite 如何把 D 统计量扩展到大规模分析
传统 ABBA-BABA 分析往往围绕一个指定四群体组合展开。Dsuite 的设计重点是把这一思想推广到多群体数据中。
1. 从样本到群体
Dsuite 输入的核心信息不是单个样本之间的关系,而是:
样本 ID → 群体/物种 ID
也就是说,Dsuite 会根据样本分组,把同一群体内多个个体的等位基因信息综合起来,计算群体水平的 ABBA、BABA、BBAA 等模式。
这使得它适用于:
- 多个品种;
- 多个地理群体;
- 多个近缘物种;
- 每个群体包含多个个体的 VCF 数据。
2. 从单个三元组到所有三元组
在指定外群后,Dsuite 可以自动遍历剩余群体之间的所有可能三元组,并计算对应的 D 统计量。
因此,分析逻辑从:
我想检验 P1、P2、P3 这一个组合
变为:
我想在所有群体组合中筛查可能的基因流信号
这正是 Dtrios 模块的核心作用。
四、Dsuite 中主要模块的原理定位
1. Dtrios:全局三元组扫描
Dtrios 是 Dsuite 中最核心的程序。它在给定外群的情况下,对所有可能的三群体组合计算:
- D 统计量;
- Z-score;
- P 值;
- f4-ratio;
- ABBA / BABA / BBAA 计数。
从原理上看,Dtrios 做的是 全基因组层面的群体组合筛查。
它回答的问题是:
在所有群体三元组中,哪些组合表现出显著的等位基因共享不对称?
2. Dinvestigate:局部窗口验证
Dtrios 给出的是全基因组总体信号。如果某个三元组显著,还需要进一步判断:
- 信号是否集中在某些染色体区域;
- 是否由少数异常区域驱动;
- introgression 片段是否在基因组上呈现局部聚集。
Dinvestigate 便用于对指定三元组进行窗口分析,计算局部的:
- D;
; ; 。
从原理上看,它把“是否存在基因流”的问题推进到:
基因流信号在基因组上分布在哪里?
3. Fbranch:把 f4-ratio 映射到树分支
当群体数量较多时,单独查看大量三元组或四元组结果会很难解释。Fbranch 的思想是:
把多个相关的 f4-ratio 结果放回系统发育树上,推断哪些分支之间可能发生过基因流。
它需要一棵由外群定根的 Newick 树。结果通常可以理解为一个“分支 × 分支”的矩阵:某个分支与另一个分支之间的数值较高,提示它们之间可能存在基因流关系。
因此,Fbranch 更偏向 结果解释和可视化框架,而不是单个位点或单个三元组的检验。
4. Dquartets:不预设外群的四元组探索
Dquartets 是较实验性的功能。与 Dtrios 不同,它不依赖预先指定外群,而是对所有四群体组合做类似分析。
它适合用于外群选择不明确,或希望从四元组层面探索信号的场景。但由于外群在经典 ABBA-BABA 中承担判断祖先状态的关键作用,因此 Dquartets 的解释需要更谨慎。
五、f4-ratio 在 Dsuite 中的意义
D 统计量主要回答:
是否存在显著的等位基因共享不对称?
而 f4-ratio 更进一步,试图估计:
目标群体中有多少比例的祖先成分可能来自某个来源?
简单说:
| 统计量 | 更偏向回答的问题 |
|---|---|
| D 统计量 | 是否存在基因流信号 |
| f4-ratio | 基因流或混合比例大概有多强 |
不过,f4-ratio 的解释依赖更强的模型假设,例如参考群体和树拓扑是否合理。因此在使用 Dsuite 时,通常应先把 D 统计量作为筛查工具,再结合 f4-ratio、系统树和生物学背景解释混合比例。
相关概念可参考:F4-Ratio与D统计对比-混合比例与基因流检测。
六、ABBA clustering:为什么还要看聚集性
D 统计量的一个潜在问题是:ABBA/BABA 不平衡不一定只来自真实基因流。
在较深分化的类群中,以下因素也可能制造类似信号:
- 替代率差异;
- 同形性(homoplasy);
- 多次独立突变;
- 参考基因组或比对偏差。
Dsuite 官方说明中特别强调了 ABBA clustering 的思想:
如果 ABBA 信号来自真实 introgression,那么相关位点往往不是完全随机散布,而可能在基因组上形成一定聚集;如果只是由同形性或替代率差异造成,则更可能呈现零散分布。
因此,ABBA clustering 不是简单地再算一个 D 值,而是在检验:
支持基因流的位点是否具有基因组空间上的聚集特征?
这有助于区分:
- 真实 introgressed haplotype 片段;
- 随机或系统性偏差造成的假阳性信号。
七、输入数据在原理上的角色
1. VCF:提供位点层面的等位基因模式
Dsuite 以 VCF 为核心输入。VCF 中每个 SNP 位点提供不同样本的基因型信息,Dsuite 根据这些信息判断群体之间的等位基因共享模式。
需要注意的是,Dsuite 主要使用 双等位 SNP。多等位位点、indel 等复杂变异通常不作为 D 统计量的直接计数对象。
2. SETS 文件:定义“谁属于哪个群体”
SETS 文件的核心作用是建立:
sample → population/species
这个映射决定了 Dsuite 如何把个体基因型聚合成群体等位基因频率或群体模式计数。
对于 Dtrios,外群通常被标记为:
Outgroup
外群的作用不是普通分组,而是用于推断祖先等位基因方向。因此外群选择会直接影响 D 统计量解释。
3. 系统树:帮助解释分支层面的基因流
对于 Fbranch,Newick 树不是简单的装饰信息,而是把 f4-ratio 结果投射到分支上的坐标系统。
如果树拓扑错误,或者外群定根不合理,Fbranch 的分支解释也会偏离真实历史。
八、结果应如何从原理上解读
1. D 值不是“混合比例”
D 值反映的是 ABBA 与 BABA 的相对不平衡,而不是 introgression 比例。D 值越大,并不一定表示混合比例越高,因为它还受以下因素影响:
- 群体分化时间;
- 有效群体大小;
- SNP ascertainment;
- 缺失数据;
- 外群选择;
- 基因组区域异质性。
2. Z-score 用于判断显著性
Dsuite 通常通过 block jackknife 等思想估计 D 统计量的不确定性,再得到 Z-score。
常见理解是:
|Z| 越大,ABBA-BABA 不平衡越不容易由随机误差解释
但显著性并不自动等于生物学上真实的 introgression。还需要结合:
- 样本量;
- 数据质量;
- 群体定义;
- 系统树关系;
- 局部窗口结果;
- 已知地理和驯化历史。
3. f4-ratio 是模型依赖更强的量化指标
f4-ratio 可以帮助估计混合比例,但其解释比 D 统计量更依赖参考群体是否合适。若参考源群体不是实际祖先的良好代表,估计结果可能偏移。
九、适用场景与局限性
适用场景
Dsuite 适合用于:
- 多群体 VCF 数据中的基因流筛查;
- 近缘物种之间 introgression 检测;
- 家养动物品种间历史混合分析;
- 野生群体与家养群体之间基因渗入分析;
- 对大量群体组合进行系统性 D 统计量比较;
- 把 f4-ratio 结果映射到系统树分支上辅助解释。
局限性
使用 Dsuite 时需要注意:
- 外群选择错误会影响祖先/衍生等位基因判断;
- D 统计量只能说明不对称共享,不直接证明具体历史事件;
- 群体结构、ILS、不完整谱系排序和基因流可能产生相似信号;
- f4-ratio 对模型设定更敏感;
- 显著三元组很多时,需要借助树、地理信息和窗口分析进行综合解释。
十、可以怎样理解 Dsuite 的整体工作流
从原理层面看,Dsuite 的分析逻辑可以概括为:
graph TD
A[VCF SNP 数据] --> B[SETS 文件定义群体]
B --> C[Dtrios 全基因组三元组扫描]
C --> D[识别显著 D 统计量]
D --> E[Dinvestigate 做局部窗口分析]
D --> F[Fbranch 映射到系统树分支]
E --> G[判断信号是否局部聚集]
F --> H[解释可能发生基因流的分支]其中:
Dtrios负责发现候选信号;Dinvestigate负责观察局部基因组分布;Fbranch负责把复杂结果放回系统发育树解释;Dquartets提供不指定外群的四元组探索。
十一、与其他 introgression 方法的关系
Dsuite 属于基于 等位基因共享不对称性 的方法。它与 f3、f4、TreeMix、qpGraph 等方法关注的问题有重叠,但切入点不同。
| 方法 | 核心用途 |
|---|---|
| f3 统计 | 检测目标群体是否为两个源群体混合 |
| D 统计量 | 检测三群体与外群框架下的基因流不对称 |
| f4-ratio | 在特定模型下估计混合比例 |
| Fbranch | 把 f4-ratio 结果解释到系统树分支上 |
| TreeMix / qpGraph | 构建带迁移边的群体历史模型 |
相关笔记:
十二、小结
Dsuite 的核心不是“运行一个命令得到一个 D 值”,而是把 ABBA-BABA 思想工程化为一套适合多群体基因组数据的分析框架。
它的关键思想包括:
- 用外群确定祖先等位基因;
- 比较 ABBA 与 BABA 的不对称性;
- 用 D 统计量筛查基因流信号;
- 用 Z-score 判断统计显著性;
- 用 f4-ratio 辅助估计混合强度;
- 用窗口分析和 ABBA clustering 区分真实 introgression 与潜在假信号;
- 用 Fbranch 将大量结果组织到系统树分支上。
因此,理解 Dsuite 的重点是理解:
它如何把位点层面的等位基因共享模式,转化为群体历史中基因流和杂交渗入的统计证据。